/*
 程序的代码也是按照特定的顺序和逻辑执行的，程序语言提供了条件语句来帮助我们组织代码的执行逻辑。
 */
import Cocoa

//1.if / else 语句
/*
 顾明思意，这个语句表达的是一个非此即彼的语法。根据条件，要么执行一个分支的代码，要么运行另外一个分支的代码，但是绝对不会同时运行两个分支的代码。
 */
var population: Int =  5422
//message要赋初值
var message: String = ""
if population<10000
{
    message = "\(population) is a small town!"
}
else
{
    message = "\(population) is pretty big!"
}
print(message)

/*
 上面的例子中我们看到了 < 运算符，这里统一列举一下
 <              计算左边的值是否小于右边的值
 <=             计算左边的值是否小于等于右边的值
 >              计算左边的值是否大于右边的值
 >=             计算左边的值是否大于等于右边的值
 ==             计算左边的值是否等于右边的值
 !=             计算左边的值是否不等于右边的值
 ===            计算两个实例是否指向同一个引用
 !==            计算两个实例是否不指向同一个引用
 */


var population2: Int = 5422
var message2: String = ""
var hasPostOffice: Bool = true
if population2<10000
{
    message2 = "\(population2) is a small town"
}
else
{
    message2 = "\(population2) is pretty big"
}
print(message2)
if !hasPostOffice
{
    print("Where do we buy stamps")
}
/*
 上面的例子中新增加了一个类型，布尔（Bool）。其值二选一，真或假（true或false）。
 */
/*
 逻辑运算符
 && 逻辑与：当且仅当两者都为真的时候结果为真，否则为假
 || 逻辑或：两者任意之一为真时结果即为真，只有两者同时为假时结果才为假
 !  逻辑非：真变为假，假变为真
 */

/*
 拓展-三目运算符
 a?b:c
 如果a为真，那么执行b，否则，执行c。
 */
var message3 = population<10000 ? "\(population) is a small town!" : "\(population) is pretty big!"

//2嵌套
var population4: Int = 5422
var message4:String = ""

if population4 < 10000
{
    message4 = "\(population4) is a small town!"
}
else
{
    if population4 >= 10000 && population4 < 50000
    {
        message4 = "\(population4) is a medium town"
    }
    else
    {
        message4 = "\(population4) is pretty big"
    }
}
print(message4)

//3 else if
//直接举例子了
var population5:Int = 12000
var message5:String = ""
if population5 < 10000
{
    message5 = "\(population5) is a small town!"
}
else if population5 >= 10000 && population5 < 500000
{
    message5 = "\(population5) is a medium town!"
}
else
{
    message5 = "\(population5) is pretty big"
}
print(message5)

